package cn.tedu.csmall.product.service;

import cn.tedu.csmall.pojo.dto.CategoryAddNewDTO;
import cn.tedu.csmall.pojo.vo.CategoryListItemVO;
import cn.tedu.csmall.pojo.vo.CategoryStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface ICategoryService {

    /**
     * 增加类别
     * @param categoryAddNewDTO 封装了增加类别的对象
     * @return 增加类别的id
     */
    Long addNew(CategoryAddNewDTO categoryAddNewDTO);

    /**
     * 查询所有类别
     * @return 类别得列表,如果数据表中无数据,则返回长度为0的列表
     */
    List<CategoryListItemVO> list();

    /**
     * 根据id查询类别数据
     * @param id 要查询的名字id
     * @return 查询的结果
     */
    CategoryStandardVO getById(Long id);

    /**
     * 初始化缓存
     */
    void initCache();

    /**
     * 重建缓存
     */
    void rebuildCache();

}
